#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <sys/types.h>
#include <unistd.h>
#include <sys/ipc.h>
#include <sys/shm.h>


int main(int argc, char *argv[]) {


	key_t key = ftok("/tmp", 'J');
	int shmid = shmget(key, (int)NULL, 0600);
	if (shmid == -1) {
		perror("FAIL");
		abort();
	}

	if ( shmctl(shmid, IPC_RMID, NULL) < 0 ) {
		perror("FAIL");
		abort();
	}
	else {
		printf("Segmento de memoria compartida, con id=%d liberado con éxito [OK]\n",shmid);
	}
	key_t semkey = ftok("/tmp", 'S');
	int semid = semget(semkey, (int)NULL, 0600);
	if (semid == -1) {
		perror("FAIL");
		abort();
	}

	if ( semctl(semid, 4, IPC_RMID) < 0 ) {
		perror("FAIL");
		abort();
	}
	else {
		printf("Conjunto de semaforos, con id=%d liberado con éxito [OK]\n",semid);
	}	
}
